//////////////////////////////////////////////
//	File:		Timer.h
//	Aurthor:	Sebastian Lewicki
//	Purpose:	Timer
/////////////////////////////////////////////

#ifndef _CTIMER_H_
#define _CTIMER_H_

#include <windows.h>

class CTimer
{
private:
	LARGE_INTEGER		m_nFrequency;
	LARGE_INTEGER		m_nCount;

	float				m_fElapsedTime;

	// Disable singleton functions
	CTimer();
	CTimer(const CTimer&);
	CTimer& operator=(const CTimer&);
	~CTimer();

public:

	////////////////////////////////////////////////////////////
	//	Function:	GetInstance
	//	Purpose:	Returns the instance to the class
	//	Out:		The instance
	////////////////////////////////////////////////////////////
	static CTimer* GetInstance();

	////////////////////////////////////////////////////////////
	//	Function:	Init
	//	Purpose:	Initializes the timer
	////////////////////////////////////////////////////////////
	void Init();

	////////////////////////////////////////////////////////////
	//	Function:	Update
	//	Purpose:	Updates the Time variables
	////////////////////////////////////////////////////////////
	void Update();

#pragma region Accessors

	////////////////////////////////////////////////////////////
	//	Function:	GetElapsedTime
	//	Purpose:	Gets the time elapsed since the last update
	////////////////////////////////////////////////////////////
	float GetElapsedTime()						{ return m_fElapsedTime; }

#pragma endregion
};

#endif